/**
 * 题⽬描述
给你⼀个包含 n 个整数的数组 nums，判断 nums 中是否存在三个元素 a，b，c ，使得 a + b +
c = 0 ？请你找出所有满⾜条件且不重复的三元组。
注意：答案中不可以包含重复的三元组。
 */
const threeTuple  = (nums)=>{
    nums.sort((a,b)=>a-b)
    let res = []
    for(let i = 0;i<nums.length;i++){
        if(nums[i]>0) break;
        if(i>0&&nums[i]===nums[i-1]) continue;
        let left = i+1,right = nums.length-1;
        while(left<right){
            let sum = nums[i]+nums[left]+nums[right];
            if(sum===0){
                res.push([nums[i],nums[left],nums[right]])
                while(left<right&&nums[left]===nums[left+1]) left++;
                while(left<right&&nums[right]===nums[right-1]) right--;
                left++;
                right--;
            }else if(sum<0){
               left++; 
            }else{
                right--;
            } 
        }
    }
    return res;
}
console.log(threeTuple([-1,0,1,2,-1,-4]))
